package com.fare.taluo.application.analyse;

import java.util.List;
import java.util.Locale;

import com.fare.taluo.vo.core.FlightInfoVO;

/**
 * 官网渠道走势对比
 * 核心业务说明
 * 报表只有两条对比线，一条数据是用户所在航空公司自己官网的价格，一条数据来自其他渠道，如携程等
 * 比较渠道里，有“全部”“艺龙”“淘宝”等等
 * 当选择了“全部”的时候,表示数据来自多个渠道，可能出现的比较出来的最低价，最有可能的是一点来自淘宝，一点来自艺龙
 * 当选了“非全部”的时候，表示数据来自唯一的渠道，所有的数据都来自于某个渠道
 * 当有航班号的时候，查询 LP_FLIGHT rowkey： 渠道_起点(使用三字码)_终点(使用三字码)_(航班号)_航班时间(年月日时) ,用户所选择的时间段失效
 * 当没有航班号的时候，LP_LINE_HOUR rowkey： 渠道_起点_终点_航班日期(年月日时)_（航空公司key）
 * 时间段筛选，自定义时段优先于AMMDPMND，当AMMDPMND为空时，默认为ALL
 * 未来天数优先于航班日期
 * 因为是“实时”，过滤非当天抓取数据
 * @author guokenye 
 *
 */
public interface AirCompanyChannelContrastApplication {
	/**
	 * 获得整个官网渠道走势对比的报表图
	 * @param fromCityName
	 * @param toCityName
	 * @param flightNo
	 * @param flightStartDate
	 * @param flightEndDate
	 * @param futureDay
	 * @param periods
	 * @param selfStartPeriods
	 * @param selfEndPeriods
	 * @param airCompanyHbaseKey 官网habseKey
	 * @param comparedChannelHbaseKey 渠道habseKey
	 * @return
	 * @throws Exception
	 */
	public String getFusionChartsXMLStr(
			String fromCityName,String toCityName,String fromCityCode,String toCityCode, 
			String flightNo,
			String flightStartDate,String flightEndDate,Integer futureDay,
			String[] periods,Integer selfStartPeriods,Integer selfEndPeriods,
			String airCompanyHbaseKey,String comparedChannelHbaseKey,String priceType,Locale locale
			)throws Exception;
	public String getFusionChartsXMLStrCabin(String fromCity,String toCity,String fromCityCode,String toCityCode, 
			 String flightStartDate, String flightEndDate,String airCompanyCabin,
			String comparedCabins,String priceType,Locale locale)throws Exception;
	/**
	 * 页面动态加载航班号滴
	 * @param hbaseKey
	 * @param fromCityName
	 * @param toCityName
	 * @return
	 */
	public List<FlightInfoVO> getFlights(String hbaseKey,String fromCityName,String toCityName);
	
}
